package org.example.aitest.utils.gen;

public class DbTypeParser {
    
    /**
     * 从数据库类型定义中提取长度和小数位数
     * @param dbType 数据库类型定义，如 "decimal(20,2)" 或 "varchar(100)"
     * @return 包含长度和小数位数的数组 [长度, 小数位数]，小数位数可能为0
     */
    public static int[] parseTypeInfo(String dbType) {
        int[] result = new int[]{0, 0}; // [长度, 小数位数]
        
        if (dbType == null || dbType.isEmpty()) {
            return result;
        }
        
        // 查找括号内的内容
        int start = dbType.indexOf('(');
        int end = dbType.indexOf(')');
        
        if (start == -1 || end == -1 || start >= end) {
            // 没有括号，可能是简单的类型如 "int"
            return result;
        }
        
        // 提取括号内的参数
        String params = dbType.substring(start + 1, end).trim();
        String[] parts = params.split(",");
        
        try {
            // 解析长度
            if (parts.length >= 1) {
                result[0] = Integer.parseInt(parts[0].trim());
            }
            
            // 解析小数位数（如果有）
            if (parts.length >= 2) {
                result[1] = Integer.parseInt(parts[1].trim());
            }
        } catch (NumberFormatException e) {
            // 忽略解析错误，保持默认值0
        }
        
        return result;
    }
}